Conventional file sharing and distribution mechanisms require delivery of a physical storage medium such as a USB flash drive, or electronic data such as an attachment in an electronic mail. Cloud-based storage systems and services overcome these temporal and spatial restrictions and allow users to access files on a remote storage (e.g., a cloud server, web hard) without such restrictions. Users can store files on the remote storage and conveniently access them over a network as if the files are on their local storage. Cloud storage systems also provide convenient and ubiquitous access to files from various devices (e.g., desktop, laptop, tablet, smartphone) and different locations. Because cloud servers create and store back-up copies of stored files, the cloud-stored files are never lost even when the user's local storage fails.
The primary advances of cloud storage services include sharing of files with other users. However, files stored on a cloud storage are vulnerable to hacking or unauthorized access. This raises security concerns of leaking sensitive information to others. Providing secure access and storage of files is one of the key considerations in designing cloud services and systems.
File encryption provides an added layer of protection to cloud-stored files. However, encrypted files over a cloud storage would suffer inconvenience because an encryption key must be delivered to each user who desires to access the cloud-stored files. An elevated level of scrutiny can be achieved by designing a cloud storage system that prohibits the cloud server from decrypting stored files without the file owner's consent. To this end, a client-side file encryption is desirable, however the implementation of client-side encryption for cloud users poses technical difficulties and inconveniences.